home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 031a / adg_4_6.zip / METERDLG.C < prev    next >
Text File  |  1991-02-21  |  3KB  |  97 lines

  1. /****************************************************************************
  2. Module name: MeterDlg.C
  3. Programmer : Jeffrey M. Richter.
  4. *****************************************************************************/
  5.  
  6. #include "..\nowindws.h"
  7. #define  OEMRESOURCE
  8. #undef   NOCOLOR
  9. #undef   NOCTLMGR
  10. #undef   NOGDI
  11. #undef   NOKERNEL
  12. #undef   NOLSTRING
  13. #undef   NOMEMMGR
  14. #undef   NORASTEROPS
  15. #undef   NOUSER
  16. #undef   NOVIRTUALKEYCODES
  17. #undef   NOWINMESSAGES
  18. #undef   NOWINOFFSETS
  19. #undef   NOWINSTYLES
  20. #include <windows.h>
  21. #include <custcntl.h>
  22.  
  23. #include "cntl-de.h"
  24.  
  25. #include "meter.h"
  26. #include "dialog.h"
  27.  
  28. extern HANDLE _hInstance;
  29. extern char _szControlName[];
  30.  
  31. BOOL FAR PASCAL MeterDlgFn (HWND hDlg, WORD wMessage, WORD wParam, LONG lParam);
  32.  
  33.  
  34. GLOBALHANDLE FAR PASCAL MeterInfo (void) {
  35.    GLOBALHANDLE hCtlInfo = NULL;
  36.  
  37.    hCtlInfo = ControlInfo(0x0100, _szControlName, _szControlName);
  38.    if (hCtlInfo == NULL) return(hCtlInfo);
  39.    AddControlType(hCtlInfo, 0, 40, 12, WS_BORDER | WS_CHILD, _szControlName);
  40.    return(hCtlInfo);
  41.  
  42. }
  43.  
  44. BOOL FAR PASCAL MeterStyle (HWND hWnd, GLOBALHANDLE hCtlStyle,
  45.                         LPFNSTRTOID lpfnStrToId, LPFNIDTOSTR lpfnIdToStr) {
  46.    return(ShowStyleDlg(_hInstance, MAKEINTRESOURCE(DLG_STYLEDLG),
  47.       hWnd, (FARPROC) MeterDlgFn, 0, hCtlStyle, lpfnStrToId, lpfnIdToStr));
  48. }
  49.  
  50. BOOL FAR PASCAL MeterDlgFn (HWND hDlg, WORD wMsg, WORD wParam, LONG lParam) {
  51.    BOOL fResult = TRUE;
  52.    char szId[20];
  53.    DWORD dwResult;
  54.  
  55.    switch (wMsg) {
  56.       case WM_INITDIALOG:
  57.          GetIdString(hDlg, szId, sizeof(szId));
  58.          SetDlgItemText(hDlg, ID_VALUE, szId);
  59.          break;
  60.  
  61.       case WM_COMMAND:
  62.          switch (wParam) {
  63.             case IDOK:
  64.                GetDlgItemText(hDlg, ID_VALUE, szId, sizeof(szId));
  65.                dwResult = SetIdValue(hDlg, szId);
  66.                if (LOWORD(dwResult) == 0) break;
  67.                // Fall through to IDCANCEL case
  68.  
  69.             case IDCANCEL:
  70.                EndDialog(hDlg, wParam);
  71.                break;
  72.  
  73.             case ID_VALUE:
  74.                if (HIWORD(lParam) == EN_CHANGE)
  75.                   EnableWindow(GetDlgItem(hDlg, IDOK),
  76.                      SendMessage(LOWORD(lParam), WM_GETTEXTLENGTH, 0, 0L)
  77.                      ? TRUE : FALSE);
  78.                break;
  79.  
  80.             default: fResult = FALSE; break;
  81.          }
  82.          break;
  83.  
  84.       default: fResult = FALSE; break;
  85.    }
  86.    return(fResult);
  87. }
  88.  
  89. WORD FAR PASCAL MeterFlags (DWORD dwFlags, LPSTR szString, WORD wMaxString) {
  90.    WORD x;
  91.    *szString = 0;
  92.    x = lstrlen(szString);
  93.    if (x > 0) { x -= sizeof(" | ") - 1; *(szString + x) = 0; }
  94.    return(x);
  95. }
  96. 
  97.